package com.fdb.efp.nls.service.dao;

import com.fdb.efp.nls.service.domain.ColltTaskFlowApp;
import com.fdb.efp.nls.service.vo.ColltTaskFlowAppVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * DAO Interface: 催收任务流转申请表
 * @author ligm
 * @date 2019-08-27 
 */
public interface ColltTaskFlowAppDao {
	
	/**
	 * 新增数据 
     * @param inColltTaskFlowAppVo
	 * @return 
	 */
	public int insertColltTaskFlowApp(ColltTaskFlowApp colltTaskFlowApp);

    /**
	 * 根据主键删除信息 
     * @param inColltTaskFlowAppVo
	 * @return 
	 */
	public int deleteByPk(ColltTaskFlowApp colltTaskFlowApp);

    /**
	 * 根据主键更新信息 
     * @param inColltTaskFlowAppVo
	 * @return 
	 */    
	public int updateByPk(ColltTaskFlowApp colltTaskFlowApp);

    /**
	 * 根据主键查询详情 
     * @param colltTaskFlowApp
	 * @return 
	 */
    public ColltTaskFlowApp queryByPk(ColltTaskFlowApp colltTaskFlowApp);

    /**
	 * 一级数据权限,默认查看当前用户对应的数据 
     * @param colltTaskFlowApp
	 * @return 
	 */
	public List<ColltTaskFlowApp> queryAllByLevelOneByPage(ColltTaskFlowAppVO colltTaskFlowApp);
	
    /**
	 * 二级数据权限,默认查看当前用户及所属机构对应的数据 
     * @param colltTaskFlowApp
	 * @return 
	 */
	public List<ColltTaskFlowApp> queryAllByLevelTwoByPage(ColltTaskFlowAppVO colltTaskFlowApp);
	
    /**
	 * 三级数据权限,默认查看当前用户所在机构及下属机构对应的数据 
     * @param colltTaskFlowApp
	 * @return 
	 */
	public List<ColltTaskFlowApp> queryAllByLevelThreeByPage(ColltTaskFlowAppVO colltTaskFlowApp);

    /**
	 * 四级数据权限,默认预留，便于后续自定义 
     * @param colltTaskFlowApp
	 * @return 
	 */
    public List<ColltTaskFlowApp> queryAllByLevelFourByPage(ColltTaskFlowAppVO colltTaskFlowApp);

    /**
	 * 五级数据权限,默认预留，便于后续自定义 
     * @param colltTaskFlowApp
	 * @return 
	 */
    public List<ColltTaskFlowApp> queryAllByLevelFiveByPage(ColltTaskFlowAppVO colltTaskFlowApp);

	public List<ColltTaskFlowApp> queryByColltTaskNo(ColltTaskFlowAppVO colltTaskFlowAppVO);

	public ColltTaskFlowApp queryColltTaskFlowAppInfo(ColltTaskFlowApp colltTaskFlowApp);

	public ColltTaskFlowApp queryByFlowApplyNo(@Param("flowApplyNo") String flowApplyNo);

	public List<ColltTaskFlowApp> queryAllByColltTaskNoByPage(ColltTaskFlowAppVO colltTaskFlowApp);
}
